package com.hsgene.supplier.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.common.util.result.NullObject;
import com.hsgene.common.util.support.Pagination;
import com.hsgene.supplier.condition.AgencyCondition;
import com.hsgene.supplier.domain.GeneticTestingAgency;
import com.hsgene.supplier.dto.GeneticTestingAgencyDto;

import java.util.List;

/**
 * @Description: //TODO
 * @ProjectName: hdas-geneshop
 * @Package: com.hsgene.supplier.service
 * @Author: FX
 * @CreateDate: 2018/10/17 11:08
 * @Version: 1.0
 * Copyright: Copyright (c) 2018
 */
public interface AgencyService {
    /**
     * 添加
     *
     * @return
     * @author FX
     * @date 2018/10/17 11:10
     * @Param geneticTestingAgency
     */
    ApiResult saveAgency(GeneticTestingAgency geneticTestingAgency);

    /**
     * 修改
     *
     * @param geneticTestingAgency
     * @return
     * @author FX
     * @date 2018/10/17 11:58
     */
    ApiResult updateAgency(GeneticTestingAgency geneticTestingAgency);

    /**
     * 列表
     *
     * @param agencyCondition
     * @return
     * @author FX
     * @date 2018/10/17 13:50
     */
    ApiResult<Pagination<GeneticTestingAgencyDto>> getList(AgencyCondition agencyCondition);

    /**
     * 根据id查找
     *
     * @param id
     * @return
     * @author FX
     * @date 2018/10/17 14:26
     */
    ApiResult<GeneticTestingAgencyDto> getAgencyById(String id);

    /**
     * 删除
     *
     * @param id
     * @return
     * @author FX
     * @date 2018/10/17 14:32
     */
    ApiResult deleteAgenecy(String id);

    /**
     * 获取全部机构
     *
     * @param
     * @return
     * @author FX
     * @date 2018/10/17 16:06
     */
    ApiResult getAll();

    /***
     * 批量获取机构信息
     * @author jcl
     * @date 2018/11/13 14:05
     * @param ids 机构id
     * @return
     */
    ApiResult<List<GeneticTestingAgency>> getAgencyByIds(String ids);

    /**
     * 批量删除
     *
     * @param id
     * @return
     * @author FX
     * @date 2019/1/3 17:49
     */
    ApiResult deleteAgencyMore(List<String> id);

    /**
     * 重置机构对应管理员密码
     *
     * @param agencyId 机构id
     * @return 重置密码结果
     */
    ApiResult<NullObject> initAgencyPwd(String agencyId);
}
